Many consumer and industrial electronic and electro-mechanical devices include interfaces through which a user is able to operate the device. For example, climate control systems may include a thermostat or other interface through which a user selects a desired temperature. Garage door openers may include a wireless remote through which a user can transmit a signal to the garage door opener to open or close the garage door. Other devices, such as appliances, scales, audio/visual systems, and tools, often include knobs, buttons, dials, switches, touch screens, or others controls to view device information and change device settings.
As technology has advanced, many of these devices have offered increased functionality at the same or lower cost. For example, climate control, lighting, and other systems can now be programmed to turn on and off and automatically change device settings at different times on different days or in response to other external events. While advancements in processing technologies have resulted in faster and more powerful processors in these electronic devices, cost considerations often limit the capabilities of processors selected for use in electronic devices.
Many end users of electronic devices are not willing to pay the premium required to equip the electronic device with the same processing capabilities as their smart phone or computer. As a result, many electronic devices are equipped with resource-limited processors, such as microcontrollers, that are capable of only performing a minimal set of functions necessary for the user to operate the electronic device. These resource-limited processors used in electronic devices are incapable of running an operating system or even executing basic functions performed by smart phones and other computing systems.
For example, instead of providing an intuitive, graphical user interface as found in many smart phone or web applications, many programmable thermostats require users to cycle through a complex array of menus and submenus with limited feedback on a small display to program the thermostat to set a preset temperature (e.g. 70°) at a preset time (e.g. 5 pm) on a preset day (e.g. each weekday). In addition, several buttons or button combinations may perform different functions depending on the menu further confusing users. For example, the buttons to raise or lower a preset temperature may also be used to change the time in one menu, change a selected mode in a second menu, and change other settings in a third menu.
To avoid including more powerful and costly processors that would enable richer user interfaces, device manufacturers have attempted to simplify user interfaces by consolidating or otherwise limiting device features and functionality. For example, while many programmable thermostats could be configured to support preset temperatures on specific dates of the year, such as January 1 or March 3, few, if any, actually provide this functionality, as it may require additional sets of programmable menus and submenus that may increase the time required to program the thermostat and add to user frustration and confusion. Thus, some manufacturers choose to intentionally limit or restrict features and functionality to make the interfaces simpler to a user and more user-friendly at a given price.
While device manufacturers could upgrade the technology used in the user interfaces of their devices, such an investment may not be practical or cost effective, given the costs of upgrading the technology, the quantities of each device model sold, and the price users are willing to pay for the devices.
As described in detail below, we provide herein technology that facilitates development of intuitive, feature-rich user interfaces for these devices in a cost effective manner by shifting processing functions that cannot be performed by resource-limited processors of the electronic device to an external computing system independent of the device. As part of this technology, we also provide a framework and protocol for enabling bi-directional communication between the electronic device and the device independent computing system.